Service-Oriented Architecture (SOA) is used to facilitate the interaction between software components on computers connected over a network, such as a cloud-based network. Functions from enterprise applications are separated into interoperable, standards-based services, which can then be combined with other services and reused to meet particular business needs. Thus, using SOA, functionality provided by applications (from potentially multiple vendors) can be integrated as one or more services, and orchestrated into new composite applications or composites. Composites can contain both new services created specifically for the application and also a business function from existing systems and applications, reused as part of the composition.
SOA enables business objectives while building an enterprise quality system. SOA includes a collection of standards and practices including service component architecture (SCA). SCA is a set of specifications which describe a model for building applications and systems using an SOA. SCA provides a model for the composition of services and for the creation of service components, including the reuse of an existing application function within SCA compositions. SCA extends and complements approaches to implementing services, and SCA builds on open standards, such as Web services. By using SCA, a business function is provided as a series of services that are assembled together to create solutions that serve a particular business need.
SOA can be implemented in an SOA middleware container (e.g. SOA Suite). A container is, for example, a program, such as a Java program which is capable of running other programs. A container can be, for example, a run-time engine. The SOA container can store applications, such as fusion and non-fusion applications. Fusion applications are targeted applications for different industries (e.g., financial, accounting, customer service, supply chain, etc.). Fusion applications are pre-built applications which can be customized for businesses.
The services can be orchestrated using orchestration capabilities like Business Process Execution Language (BPEL) or business process management (BPM). BPEL is an XML-based language that allows Web services in a service-oriented architecture (SOA) to interconnect and share data. BPM is a field in operations management that manages processes in order to improve business performance outcomes. A company's performance can be improved by managing and optimizing a company's business processes. Composites can be developed to support an organization's business processes.
A composite can be running in, for example, a SOA container, when a user determines that changes to the composite need to be made. For example, a user may need to fix a bug, such as an error, flaw, or failure in the composite application, which will affect the composite that is running. However, in order to change the composite, a new version of the composite is created. Further, in order to deploy the new version of the composite, all instances of the composite have to be stopped. Since the instances may be stopped mid-operation, this can affect the results of the composite or the results may be inaccurate.
Alternatively, instead of stopping the composite, the one or more instances of the composite can continue to run until they have completed their process and the changes can be deployed the next time the service, to which the composite is directed, is called. Therefore, the changes would not become effective until the next time a service is called. However, a lot of data can be affected if a composite is not updated or fixed immediately. Also, a composite can run for a long time and it can be days, weeks or years before an instance of a composite has completed running. Any delays can affect a user's business and it can be a lengthy amount of time before changes can be made.
Therefore, a method of patching a running composite is desired.